Scroll to navigation

SETSID(2) Linux Programmer's Manual SETSID(2)

名前

setsid - セッション (session) を作成し、プロセス・グループ ID を設定する

書式

#include <unistd.h>

pid_t setsid(void);

説明

setsid() は呼び出したプロセスがプロセス・グループ・リーダー (process group leader) でなければ、新しいセッションを作成する。 呼び出したプロセスは新しいセッションのリーダー、新しいプロセス・グループの プロセス・グループ・リーダーとなり、tty の制御を持たない。 呼び出したプロセスのプロセス・グループ ID とセッション ID には、 呼び出したプロセスの PID が設定される。呼び出したプロセスはこの 新しいプロセス・グループ、この新しいセッションの唯一のプロセスとなる。

返り値

成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 エラーの場合は、 (pid_t) -1 が返され、 error にエラーを示す値が設定される。

エラー

いずれかのプロセスのプロセス・グループ ID が、 呼び出したプロセスの PID と等しい。 これは、呼び出したプロセスが既にプロセス・リーダーの場合には setsid() は失敗することを意味する。

準拠

SVr4, POSIX.1-2001.

注意

fork(2) で作成された子プロセスは、親プロセスのセッション ID を継承する。 execve(2) の前後でセッション ID は保存される。

プロセス・グループ・リーダーとは、そのプロセスのプロセス・グループ ID が その PID に等しいプロセスである。 setsid() を確実に成功させるためには、 fork(2) して exit(2) し、子プロセスで setsid() を行なえば良い。

関連項目

getsid(2), setpgid(2), setpgrp(2), tcgetsid(3), credentials(7)

2008-12-03 Linux